ASP.Net MVC-তে বুন্ডলিং (Bundling) এবং মিনিফিকেশন (Minification) একটি গুরুত্বপূর্ণ ফিচার, যা অ্যাপ্লিকেশনের CSS এবং JavaScript ফাইলগুলোর পারফরম্যান্স উন্নত করে। বুন্ডলিং একাধিক ফাইলকে একটি ফাইলে একত্রিত করে এবং মিনিফিকেশন ফাইলগুলোর আকার ছোট করে। এর ফলে অ্যাপ্লিকেশন লোড টাইম কমে যায় এবং HTTP রিকোয়েস্টের সংখ্যা কমে।
ASP.Net MVC প্রজেক্টে ডিফল্টভাবে BundleConfig.cs
নামে একটি ফাইল থাকে, যা অ্যাপ্লিকেশনের বুন্ডল কনফিগারেশন পরিচালনা করে। এটি App_Start
ফোল্ডারের মধ্যে থাকে।
CSS ফাইলগুলো একত্রিত করার জন্য একটি CSS বুন্ডল তৈরি করতে পারেন।
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
// CSS Bundling
bundles.Add(new StyleBundle("~/bundles/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"));
}
}
JavaScript ফাইলগুলো একত্রিত করার জন্য একটি JS বুন্ডল তৈরি করতে পারেন।
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
// JS Bundling
bundles.Add(new ScriptBundle("~/bundles/js").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/custom.js"));
}
}
Global.asax
ফাইলের Application_Start
মেথডে বুন্ডল নিবন্ধন করতে হবে।
protected void Application_Start()
{
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
_Layout.cshtml
বা অন্য যেকোনো ভিউতে বুন্ডল ব্যবহার করতে পারেন।
<!DOCTYPE html>
<html>
<head>
@Styles.Render("~/bundles/css")
</head>
<body>
@Scripts.Render("~/bundles/js")
</body>
</html>
কিছু নির্দিষ্ট অবস্থায় মিনিফিকেশন নিষ্ক্রিয় করতে পারেন, যেমন ডিবাগ মোডে:
BundleTable.EnableOptimizations = false; // ডিবাগ মোডে মিনিফিকেশন বন্ধ
আপনার প্রয়োজন অনুযায়ী কাস্টম মিনিফায়ার ব্যবহার করতে পারেন।
public class CustomBundleOrderer : IBundleOrderer
{
public IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
{
// কাস্টম অর্ডারিং লজিক
return files.OrderBy(f => f.Name);
}
}
ASP.Net MVC ডিফল্টভাবে ডিবাগ মোডে ফাইলগুলো আলাদাভাবে রেন্ডার করে এবং প্রোডাকশন মোডে বুন্ডলিং ও মিনিফিকেশন সক্রিয় করে। এটি নির্ধারণ করা হয় Web.config
ফাইলের compilation
ট্যাগে।
<compilation debug="false" targetFramework="4.7.2" />
~/bundles/main.css
)।ASP.Net MVC-তে বুন্ডলিং এবং মিনিফিকেশন ওয়েব অ্যাপ্লিকেশনের কার্যকারিতা বাড়ানোর একটি কার্যকর পদ্ধতি। CSS এবং JavaScript ফাইলগুলো একত্রিত ও মিনিফাই করে এটি HTTP রিকোয়েস্ট কমায় এবং অ্যাপ্লিকেশনের লোড টাইম উন্নত করে। সঠিক কনফিগারেশন ব্যবহার করলে এটি অ্যাপ্লিকেশনের পারফরম্যান্সকে অনেকাংশে বাড়াতে পারে।